Skip to content
wxWidgets - Cross-Platform GUI Library
Stop Russia agression of Ukraine
Stop the War in Ukraine

wxWidgets is united with the people of Ukraine and the international community.

wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base. It has popular language bindings for Python, Ruby, Lua, Perl and several other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.

Latest News

wxWidgets 3.3.1 Released

Posted on

wxWidgets 3.3.1 has been released and is now available on GitHub, from where you can download archives with the library sources and documentation as binaries for the selected Windows compilers. Documentation for this version is now also available online or can be downloaded from the link above for the offline use. In particular, if you are new to wxWidgets, you may find the installation guide a good starting point.

This is a second release in the 3.3 series and comes soon after 3.3.0 as it contains a number of important fixes for the regressions and other bugs found in 3.3.0. Please update to this release if you are already using 3.3.0 as it is fully compatible with it.

The most important fixes since 3.3.0 include:

  • Restore Windows date/time pickers behaviour under non-English OS (#25511).
  • Fix crash on startup under macOS when using Farsi as system language (#25561).
  • Fix losing wxGenericListCtrl contents after AppendColumn() (#25519).
  • Fix crash when sorting wxDataViewCtrl in wxGTK in some circumstances (#25625).
  • Fix crash when using per-window menu in Windows MDI applications (#25522).
  • Restore inadvertently broken API compatibility in wxPropertyGrid (#25627).

There were also a number of fixes to the new Windows dark mode support:

  • Fix crash with wxStaticBitmap inside wxNotebook in dark mode (#25499).
  • Fix disabled wxButton bitmaps appearance in dark mode (#25575).
  • Fix disabled wxStaticText appearance in dark mode (#25574).
  • Fix notebook background in dark high contrast themes (#25542).
  • Fix regression in wxDataViewCtrl border in light mode (#25532).
  • Fix selected toolbar buttons in dark mode (#25616).
  • Fix wxComboCtrl appearance in dark mode (#23766).
  • Fix wxTE_RICH wxTextCtrl appearance in dark mode (#25602).

And, finally, this release also contains a small number of new features:

  • Allow setting “app id” under supported platforms (Windows/Wayland) (#25548).
  • Add persistence support for wxRadioButtons (#25530) and wxCheckBox (#25515).
  • Add support for PNG “Description” text chunk to wxImage (#25556).
  • wxNumberFormatter improvements (#25614, #25635).

Please see the change log for a fuller list of the other improvements and the previous release announcement for the description of changes in wxWidgets 3.3 compared to the previous stable 3.2 branch. Note that in spite of all these changes, wxWidgets 3.3.1 is almost fully compatible with wxWidgets 3.2 and updating the existing applications to use it shouldn’t require much effort. However please make sure to read the “INCOMPATIBLE CHANGES” section of the change log when upgrading to be aware of the breaking changes in it.

Thanks to all the people who have contributed to this release and we hope you will find it useful and will enjoy working with it!

Comments

wxWidgets 3.3.0 Released

Posted on

wxWidgets 3.3.0 has been released today, as planned, and is now available on GitHub, from where you can download archives with the library sources and documentation as well as binaries for the selected Windows compilers. Documentation for this version is now also available online or can be downloaded from the link above for the offline use. In particular, if you are new to wxWidgets, you may find the installation guide a good starting point.

This is the first release in the 3.3 development branch, bringing many new features and improvements compared to the stable 3.2 branch while remaining mostly API-compatible with it. Please note that even if this is not a “stable” release, it is still considered to be suitable for production use, the only difference with the stable releases is that API and ABI compatibility are not guaranteed for the releases in this series. In practice, however, backwards-incompatible API changes are expected to be rare.

With more than 5300 commits since 3.2, there are too many changes to list them all here, but here are some of the most important ones:

  • The long awaited support for dark mode for Windows is finally here.
  • wxWebView has gained a new Chrome-based backend and many other more minor new features and improvements.
  • Support for pinned and multiline tabs was added to wxAuiNotebook.
  • wxImage now supports images in WebP format.
  • Support for high DPI cursors and animations was added.
  • All included third party libraries have been updated to their latest versions.
  • The library now builds with the latest compilers (gcc 15, clang 19/Xcode 16) and using recent C++ standards.

Please see the change log for a fuller, even if still incomplete, list of the other improvements. Note that in spite of all these changes, wxWidgets 3.3 is almost fully compatible with wxWidgets 3.2 and updating the existing applications to use it shouldn’t require much effort. However please make sure to read the “INCOMPATIBLE CHANGES” section of the change log when upgrading to be aware of the breaking changes in it.

Thanks to all the people who have contributed to this release, including 180 unique committers and many others who have helped by reporting bugs, providing support, making translations or otherwise contributing to the project! We hope you will find it useful and will enjoy working with it!

Comments

wxWidgets 3.2.8.1 Released

Posted on

New 3.2.8.1 maintenance release is now available on GitHub. This is a hot fix release fixing a couple of regressions in 3.2.8 related to ELF symbol versions, as the changes improving their handling done in 3.2.8 broke the build when using custom library flavour (i.e. --with-flavour configure option, see #25436) and also building using LTO with clang (#25438).

There are no other changes in this release compared to 3.2.8, so please refer to this release announcement for more details about the changes since 3.2.7 and more links.

Comments

wxWidgets 3.2.8 Released

Posted on

3.2.8 is the latest maintenance release in the stable 3.2 series and is now available on GitHub, from where you can download archives with the library sources and documentation as well as binaries for the selected Windows compilers such as Microsoft Visual C++, MinGW-w64 and TDM-GCC. You can also read the updated documentation for this version online and, in particular, if you’re new to wxWidgets, you may find the installation guide a good starting point.

Changes since 3.2.7

The focus of this release, coming soon after the previous one, is to fix several problems found in 3.2.7:

  • Fix crash in wxPropertyGrid with wxGTK3 after recent change (#25286).
  • Fix padding of wxMenu in high DPI under Windows 11 (#25117).
  • Fix key codes in WXK_NUMPADx events in wxGTK (#25263).
  • Fix ABI breakage for versioned symbols in 3.2.7 (#25327).
  • Fix third party libraries build with Xcode 16.3.
  • Fix using OpenGL and WebView when using CMake install (#25266).

But it still contains a couple of enhancements, including:

  • Add wxVector(std::initializer_list<U> list) constructor (#25290).
  • Add mouse scrolling support to generic wxSpinCtrl (#24935).
  • Add @USER@ macro to HTML and RichText printers (#25318).

Other changes include:

  • Call OnExceptionInMainLoop() in wxGTK if idle event handler throws (#25312).
  • Compute wxStaticText best size ourselves if GTK does it wrongly (#24781).
  • Fix page count display in wxHtmlPrintout when there is only one page ([#25320]).
  • Miscellaneous CMake build improvements (#25324).
  • Fix new warnings with gcc 15 (#25338).
  • Update Brazilian Portuguese translations.

Please see the full change log for more details.

This release is API and ABI-compatible with the previous 3.2.x releases, so the existing applications don’t even need to be rebuilt to profit from all the fixes above if they use shared/dynamic libraries. And if they do need to be recompiled, this can be done without any changes to the code.

Feedback

Please let us know about your experience with this release via any of the following channels:

or by commenting under this post.

Thanks to all contributors to this release and we hope that you will enjoy working with it!

Comments

wxWidgets Book Examples Now Available on GitHub

Posted on

A comprehensive collection of wxWidgets example applications is now available to the community. These applications were originally developed as supplementary material for the Polish book Cross-Platform Programming with C++ and wxWidgets 3 and are now publicly accessible on GitHub in the dedicated repository All example applications are released under the wxWidgets License.

Repository Contents

The repository contains more than 25 example applications, showcasing various wxWidgets functionalities. These include, among others:

  • User interface components and custom controls
  • File handling, logging, and system operations
  • Networking (HTTP, FTP, and Socket communication)
  • Multithreading
  • OpenGL and 3D graphics
  • Developing a custom code editor with wxScintilla

Additionally, some projects demonstrate more advanced features, making them useful for both beginners and experienced developers looking to integrate wxWidgets into their applications.

All the examples were tested on:

  • Windows 11 (Visual Studio 2022, wxWidgets 3.3.x)
  • Linux Mint 22 (wxWidgets 3.2.6)

Each project includes configuration files for Visual Studio, Code::Blocks, and Makefile, ensuring compatibility across different development environments.

All examples have been fully translated into English to support a global audience of developers.

All projects have been re-tested, updated, and adapted to the latest versions of wxWidgets and C++20, ensuring modern compatibility and performance.

The repository also includes the upgrade_wxwidgets.py script, which facilitates both upgrading and adapting projects to any version of the wxWidgets library.

This resource provides an excellent starting point for developers interested in exploring wxWidgets through working examples. Users are encouraged to review the code and adapt it to their own projects.

Comments

News Archive